package com.legendframework.core.dao;

import java.util.List;

public abstract class AbstractDao<T> implements IDao<T> {

    /**
     * 实体类型
     */
    protected Class<T> entityType;

    public AbstractDao(Class<T> entityType){
        this.entityType = entityType;
    }

    /**
     * 保存默认实体类数据
     *
     * 这个方法会强制保存，如果要判断是否第一次才保存，则在外部判断
     *
     */
    protected void saveDefaultEntity(){
        //保存初始化数据
        if (DefaultEntityValue.class.isAssignableFrom(entityType)) {
            List<T> entitys = DefaultEntityValue.getEntitys(entityType);
            if (entitys != null && !entitys.isEmpty()) {
                entitys.forEach(this::insert);
            }
        }
    }

    @Override
    public void reload() {

    }

    @Override
    public void flush() {

    }

    @Override
    public Class<T> getEntityClass() {
        return entityType;
    }
}
